package com.tencent.anli;

/**
 * 军官
 * 
 * @author apple
 *
 */
public class Officer extends Soldiers {
	// 军官特有属性，军官持有两个士兵,使用数组类实现这个属性
	public Soldiers[] soldiers = new Soldiers[2];

	public Officer(String name) {
		super(name); // super 调用父类的构造方法
		// 在构造方法里，进行赋值初始化
		soldiers[0] = new Army("张三");
		soldiers[1] = new Navy("李四");
	}

	public Soldiers[] getSoldiers() {
		return soldiers;
	}

	// 实现抽象中的抽象方法
	public void attack() {
		System.out.println(getName() + "使用手枪射击");
	}

	// 发号施令
	public void CallToAttack() {
		for (int i = 0; i < soldiers.length; i++) {
			soldiers[i].action(); // 每个士兵调用其自身的方法
		}
		this.action(); // 自己也攻击（this 指向的是当前对象）
	}

	// 方法的重载
	// 让一个士兵去攻击
	public void CallToAttack(Soldiers soldiers) {
		soldiers.attack();
	}
}
